package com.zzyk.main.mapper;


import com.zzyk.main.model.pojo.SysRole;
import com.zzyk.main.model.pojo.UserRole;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Set;

@Component
@Mapper
public interface SysRoleDao {
    // 根据角色ID获取角色信息
    public SysRole getRoleById(@Param("roleId") int roleId);

    // 根据角色名称获取角色信息
    public SysRole getRoleByName(@Param("roleName") String roleName);

    // 获取系统角色列表(模糊查询)
    public List<SysRole> getRoleList(SysRole sysRole);

    // 获取系统角色列表(带权限信息)
    public List<SysRole> getRoleListWithPermission(@Param("roleId") int roleId);

    // 添加系统角色
    public int addRole(SysRole sysRole);

    // 修改系统角色
    public int updateRole(SysRole sysRole);

    // 删除系统角色
    @Delete("update tb_sys_role set isDelete = 1 where  id=#{id}")
    public int deleteRole(@Param("id") int roleId);

    // 添加用户角色
    public int addUserRole(UserRole userRole);

    // 删除用户角色
    public int deleteUserRole(UserRole userRole);

    // 根据用户ID获取系统角色信息
    public Set<SysRole> getRoleSetByUserId(@Param("userId") int userId);

    // 根据用户ID获取系统角色信息(带权限信息)
    public Set<SysRole> getRoleSetByUserIdWithPermission(@Param("userId") int userId);

    SysRole getDefaultRole();

    List<SysRole> getOrdinaryRole();
}
